package com.happy.seatwork;

import java.util.Scanner;

public class character_retrieval {
    //创建检索字符的方法
    public static void retrieval(String str, char ch) {
        //初始化容器，分配内存，就像准备一个“收纳盒”，拼接字符串
        StringBuilder positions = new StringBuilder();
        //累计出现的次数
        int count = 0;
        //从0开始检索
        for (int i = 0; i < str.length(); i++) {
            //str.charAt(i)用于获取字符串中指定的字符且从0开始
            if (str.charAt(i) == ch) {
                count++;
                //append()像往盒子里放东西，将出现的位置的索引号放进去并用空格间隔
                positions.append(i).append(" ");
            }
        }

        if (count == 0) {
            System.out.println("该字符串中没有目标字符");
        } else {
            System.out.println("出现次数：" + count);
            //toString()像把盒子里的东西打包展示，这里是以字符串的形式展示，加上trim为了去除最后面多余的空格
            System.out.println("出现位置（索引从0开始）：" + positions.toString().trim());
        }
    }

    public static void main(String args[]){
        Scanner scanner = new Scanner(System.in);
        //输入字符串
        System.out.println("请输入一个字符串：");
        //nextLine()是从输入源读取一整行文本，包括空格  注：next()只读到第一个空格 nextInt()只读整数部分
        String input_str = scanner.nextLine();
        //输入指定字符
        System.out.println("请输入需要检索的字符");
        //必须加上charAt(0)，不加将报错，因为此时返回的是字符串与char类型不匹配，加上后只读取第一个字符即为char类型
        char target_ch = scanner.next().charAt(0);
        //调用方法，检索字符
        retrieval(input_str, target_ch);
    }
}